using System;
using Sinacor.Servico.Bovespa.Ordens.Service.DataContract.Request;
using Sinacor.Servico.Bovespa.Ordens.BusinessEntity;
using System.Collections.Generic;
using System.ComponentModel;

namespace Sinacor.Servico.Bovespa.Ordens.Service.ServiceImplementation.Translator
{
	/// <summary>
	/// Data: 18/12/2007
	/// Autor: Diogo Milanez
	/// Obs: Classe foi renomeada de TranslateIncluirOrdensFinanciamentoPOPRequest 
	/// para TranslateIncluirOrdemFinanciamentoPOPRequest
	/// </summary>
	public static class TranslateIncluirOrdemFinanciamentoPOPRequest
	{
		public static BusinessEntity.Ordem ToOrdem(DataContract.Request.IncluirOrdemFinanciamentoPOPRequest from)
		{
			if (from == null) return null;

			BusinessEntity.Ordem to = new BusinessEntity.Ordem();

			to.NumeroOrdem = from.NumeroOrdem;
			to.NumeroOrdemSubSequencia = from.NumeroOrdemSequencia;
			to.DataOrdem = from.DataOrdem;

			to.NaturezaOperacao = (BusinessEntity.Enum.TipoNaturezaOperacao) from.NaturezaOperacao;
            to.TipoMercado = (BusinessEntity.Enum.TipoMercado)from.TipoMercado;
			to.Titulo = from.Titulo;
			to.Quantidade = from.Quantidade;
			to.Preco = from.Preco;
			to.VencimentoTermo = from.VencimentoTermo;

            to.DataPregao = from.DataPregao;

            to.CodigoCarteira = from.CodigoCarteira; //incluido - esertorio - 200804241107 - ref issue ID0003580

			return to;
		}

		public static List<BusinessEntity.Ordem> ToOrdemList(List<DataContract.Request.IncluirOrdemFinanciamentoPOPRequest> from)
		{
			List<BusinessEntity.Ordem> to = null;

			if (from != null)
			{
				to = new List<BusinessEntity.Ordem>();
				foreach (DataContract.Request.IncluirOrdemFinanciamentoPOPRequest item in from)
				{
					to.Add(TranslateIncluirOrdemFinanciamentoPOPRequest.ToOrdem(item));
				}
			}

			return to;
		}
	}
}

